package cn.practice._06interceptor.config;

import cn.practice._06interceptor.interceptors.MyInterceptor1;
import cn.practice._06interceptor.interceptors.MyInterceptor2;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * WebMvcConfigurer  Spring MVC的标准配置接口
 */
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    // 注册拦截器

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册拦截器，默认拦截所有请求
        // new MyInterceptor1()   创建的拦截器类

        // 1.策略：注册拦截器：拦截所有请求
//        registry.addInterceptor(new MyInterceptor1());

        // 2.策略：注册拦截器：指定拦截哪些请求(1/多个)：拦截登录和注册
//        registry.addInterceptor(new MyInterceptor1())
//                .addPathPatterns("/v1/users/login", "/v1/users/register");  //
        // 3.策略：拦截用户模块的所有接口
//        registry.addInterceptor(new MyInterceptor1())
//                .addPathPatterns("/v1/users/**");

        // 4.策略：拦截除了登录和注册的所有接口
       /* registry.addInterceptor(new MyInterceptor1())
                // 拦截请求路径
                .addPathPatterns("/v1/users/**")
                // 排除拦截请求路径
                .excludePathPatterns("/v1/users/login");*/

        // 5.策略：拦截除了用户模块的所有接口
//        registry.addInterceptor(new MyInterceptor1())
//                .excludePathPatterns("/v1/users/**");


        // 多拦截器使用
        registry.addInterceptor(new MyInterceptor1());


        registry.addInterceptor(new MyInterceptor2());


    }
}
